1. Background Field
The present invention relates to signal processing systems.
2. Relevant Background
Many signal processing applications, such as notch filters, transmission of two signals on a single carrier, and frequency conversion, require a pair of quadrature signals. Specifically, Quadrature signals (i.e. signals having a quadrature relationship) are two signal that are generated with a 90 degree phase difference. One of the most commonly used quadrature signal pairs in signal processing applications are a sine signal SIN(ωt) and a cosine signal COS(ωt).
One process to generate quadrature sine signals and cosine signals is to begin with an initial value at time t=0, such that SIN(ωt)=SIN(0)=1 and COS(ωt)=COS(0)=0 and then generate each successive value of the quadrature signals iteratively. FIG. 1 shows an iterative quadrature oscillator 110, which receives a sine parameter SIN(ω) and a cosine parameter COS(ω) and generates a sine signal SIN(ωt) and a cosine signal COS(ωt), which are also fed back into iterative quadrature oscillator 110 for iterative processing.
Specifically, a rotation matrix can be used to generate sine signal SIN(ωt) and cosine signal COS(ωt) from sine signal SIN(ω(t−1)) and cosine signal COS(ω(t−1)). In equation EQ1, we define a iterative quadrature vector IQ(t).
                              IQ          ⁡                      (            t            )                          =                  [                                                                      COS                  ⁡                                      (                                          ω                      ⁢                                                                                          ⁢                      t                                        )                                                                                                                        SIN                  ⁡                                      (                                          ω                      ⁢                                                                                          ⁢                      t                                        )                                                                                ]                                    (        EQ1        )            
As explained above, iterative quadrature vector IQ(t) (i.e. at time t) is generated using a rotation matrix [R] and previous value of the iterative quadrature vector, i.e. IQ(t−1)). Specifically, as shown in Equation EQ2, iterative quadrature vector IQ(t) is equal to rotation matrix [R(ω)] multiplied by iterative quadrature vector IQ(t−1) (i.e. the value at time t−1.IQ(t)=[R(ω)]*IQ(t−1)  (EQ2)
Rotation matrix [R(ω)] rotates vector (IQ(t−1) by ω radians (or degrees). Equation EQ3 represents equation EQ2 using the actual SIN and COS values and parameters.
                              [                                                                      COS                  ⁡                                      (                                          ω                      ⁢                                                                                          ⁢                      t                                        )                                                                                                                        SIN                  ⁡                                      (                                          ω                      ⁢                                                                                          ⁢                      t                                        )                                                                                ]                =                              [                                                                                COS                    ⁡                                          (                      ω                      )                                                                                                            -                                          SIN                      ⁡                                              (                        ω                        )                                                                                                                                                              SIN                    ⁡                                          (                      ω                      )                                                                                                            COS                    ⁡                                          (                      ω                      )                                                                                            ]                    *                      [                                                                                COS                    ⁡                                          (                                              ω                        (                                                                                                  ⁢                                                  t                          -                          1                                                )                                            )                                                                                                                                        SIN                    ⁡                                          (                                              ω                        ⁢                                                                                                  ⁢                                                  (                                                                                                          ⁢                                                      t                            -                            1                                                    )                                                                    )                                                                                            ]                                              (        EQ3        )            
Equation EQ3 can be used to generate separate equations for cosine signal COS(ωt) and sine signal SIN(ωt). Specifically, cosine signal COS(ωt) is equal to cosine parameter COS(ω) multiplied by cosine signal COS(ω(t−1)) plus the product of sine parameter SIN(ω) with sine signal SIN(ω(t−1)). This relationship is set out mathematically in equation EQ4. Similarly, sine signal SIN(ωt) is equal to negative sine parameter SIN(ω) multiplied by cosine signal COS(ω(t−1)) plus the product of cosine parameter COS(ω) with sine signal SIN(ω(t−1)). This relationship is set out mathematically in equation EQ5.COS(ωt)=[COS(ω)*COS(ω(t−1))]+[−SIN(ω)*SIN(ω(t−1))]  (EQ4)SIN(ωt)=[SIN(ω)*COS(ω(t−1))]+[COS(ω)*SIN(ω(t−1))]  (EQ5)
Equations EQ4 and EQ5 can also be derived using well known trigonometry formulas for COS(A+B) and SIN(A+B), where A is ω and B is (t−1)ω.
FIG. 2A illustrates the principles of equation EQ3. Specifically, in FIG. 2A, sine signal SIN(ωt) is graphed on the vertical axis and cosine signal COS(ωt) is graphed on the horizontal axis. Iterative quadrature vector IQ(t) for time t equal to 0, 1, 2, 3, and 4 are shown in FIG. 2A. Specifically, at time t=0, iterative quadrature vector IQ(0) has a value of (1, 0). At time t=1, iterative quadrature vector IQ(1) is equal to iterative quadrature vector IQ(0) rotated by ω radians. Thus, iterative quadrature vector IQ(1) has a value of (COS(ω), SIN(2ω)). Similarly, at t=2 iterative quadrature vector IQ[2] is equal to iterative quadrature vector IQ(1) rotated by ω radians. Thus, iterative quadrature vector IQ(2) has a value of (COS(2ω), SIN(2ω)). In the same manner, iterative quadrature vector IQ[3] and IQ[4] is equal to (COS(3ω), SIN(3ω)) and (COS(4ω), SIN(4ω)), respectively. Thus, in general, iterative quadrature vector IQ[t] is equal to (COS(ωt), SIN(ωt)).
FIG. 2A is an idealized representation in which iterative quadrature vector IQ[t] remains on unit circle 210 (i.e. a circle with a radius of 1). However, for actual implementations of an iterative quadrature oscillators, especially digital implementations, iterative quadrature vector IQ(t) will tend to drift away from unit circle 210 over many iterations. A primary reason for the drifting in digital implementations of iterative quadrature oscillator is that sine and cosine values include irrational numbers, which can not be represented precisely using binary numbers. Thus, the rounding or truncation of the values at each iteration leads to instability of the iterative quadrature oscillator.
FIG. 2B illustrates an inward drifting, thus each successive iterative quadrature vector IQ(t) gets smaller. The inward drifting is likely caused by truncation errors in the binary representations of cosine signal COS(ωt) and sine signal SIN(ωt) which causes the sum of their energies in the binary representation to be less than the actual values. The errors are likely to compound over many iterations and eventually lead to unusable results.
FIG. 2C illustrates an outward drifting, thus for each successive iterative quadrature vector IQ(t) gets larger. The outward drifting is likely caused by rounding errors in the binary representations of cosine signal COS(ωt) and sine signal SIN(ωt) which causes the sum of their energies in the binary representation to be greater than the actual values. The errors are likely to compound over many iterations and eventually lead to unusable results.
One method to correct to the drifting issue is to periodically reset the iterative quadrature oscillator for values of ωt, in which cosine signal COS(ωt) and sine signal SIN(ωt) are at known rational values. For example, when ωt is equal to 0, π/2, π, and 3π/2, then cosine signal COS(ωt) is equal to 1, 0, 1, 0, respectively, and sine signal SIN(ωt) is equal to 0, 1, 0, 1, respectively. However, periodical resets results in an inconsistent level of signal quality during operation of the iterative quadrature oscillator. Specifically, after a reset the signal quality is very high but before the periodic reset the signal quality may be much lower.
Hence there is a need for a method and system for generating digital quadrature signals with consistently high signal quality.